package com.punai.customer.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.punai.common.utils.SecurityUtils;
import com.punai.customer.domain.CusLinkMaterialStaCus;
import com.punai.customer.domain.vo.LinkCusStaVo;
import com.punai.customer.domain.vo.MaterialStaCusVo;
import com.punai.customer.mapper.CusLinkMaterialStaCusMapper;
import com.punai.customer.service.ICusLinkMaterialStaCusService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 标准材料与客户材料的对应Service业务层处理
 *
 * @author zxw_
 * @date 2023-01-30
 */
@Service
public class CusLinkMaterialStaCusServiceImpl extends ServiceImpl<CusLinkMaterialStaCusMapper,CusLinkMaterialStaCus> implements ICusLinkMaterialStaCusService
{
    @Autowired
    private CusLinkMaterialStaCusMapper cusLinkMaterialStaCusMapper;

    /**
     * 查询标准材料与客户材料的对应
     *
     * @param id 标准材料与客户材料的对应主键
     * @return 标准材料与客户材料的对应
     */
    @Override
    public CusLinkMaterialStaCus selectCusLinkMaterialStaCusById(String id)
    {
        return cusLinkMaterialStaCusMapper.selectCusLinkMaterialStaCusById(id);
    }

    /**
     * 查询标准材料与客户材料的对应列表
     *
     * @param cusLinkMaterialStaCus 标准材料与客户材料的对应
     * @return 标准材料与客户材料的对应
     */
    @Override
    public List<CusLinkMaterialStaCus> selectCusLinkMaterialStaCusList(CusLinkMaterialStaCus cusLinkMaterialStaCus)
    {
        return cusLinkMaterialStaCusMapper.selectCusLinkMaterialStaCusList(cusLinkMaterialStaCus);
    }

    /**
     * 新增标准材料与客户材料的对应
     *
     * @param cusLinkMaterialStaCus 标准材料与客户材料的对应
     * @return 结果
     */
    @Override
    public int insertCusLinkMaterialStaCus(CusLinkMaterialStaCus cusLinkMaterialStaCus)
    {
            return cusLinkMaterialStaCusMapper.insert(cusLinkMaterialStaCus);
    }

    /**
     * 修改标准材料与客户材料的对应
     *
     * @param cusLinkMaterialStaCus 标准材料与客户材料的对应
     * @return 结果
     */
    @Override
    public int updateCusLinkMaterialStaCus(CusLinkMaterialStaCus cusLinkMaterialStaCus)
    {
        return cusLinkMaterialStaCusMapper.updateById(cusLinkMaterialStaCus);
    }

    /**
     * 批量删除标准材料与客户材料的对应
     *
     * @param ids 需要删除的标准材料与客户材料的对应主键
     * @return 结果
     */
    @Override
    public int deleteCusLinkMaterialStaCusByIds(String[] ids)
    {
        return cusLinkMaterialStaCusMapper.deleteCusLinkMaterialStaCusByIds(ids);
    }

    /**
     * 删除标准材料与客户材料的对应信息
     *
     * @param id 标准材料与客户材料的对应主键
     * @return 结果
     */
    @Override
    public int deleteCusLinkMaterialStaCusById(String id)
    {
        Long companyId = SecurityUtils.getCompanyId();
        return cusLinkMaterialStaCusMapper.deleteCusLinkMaterialStaCusById(id,companyId);
    }

    @Override
    public  List<CusLinkMaterialStaCus> selectUsedLink(LinkCusStaVo vo) {
        // 查询配对的
        Long companyId = SecurityUtils.getCompanyId();
        String staId = vo.getStaId();
        String cusId = vo.getCusId();
        return cusLinkMaterialStaCusMapper.selectSettingLinkList(companyId,cusId,staId);
    }

    @Override
    public int insertLink(MaterialStaCusVo vo) {
        Long companyId = SecurityUtils.getCompanyId();
        String cusId = vo.getCusId();
        List<CusLinkMaterialStaCus> cusLinkMaterialStaCusList = vo.getCusLinkMaterialStaCusList();
        for (CusLinkMaterialStaCus cus : cusLinkMaterialStaCusList) {
            cus.setCusId(cusId);
            cus.setCompanyId(companyId);
        }
        saveBatch(cusLinkMaterialStaCusList);
        return 200;
    }
}
